A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the xerographic reproduction by anyone of the patent document or the patent disclosure in exactly the form it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to a general-purpose data modification system and, in particular, a common system and method for modifying any data composed of interrelated data structures similar to the protocols found within network frames.
In modem society, there has been an explosion in the amount of data being created, stored, manipulated and transmitted in electronic form. Various tools have been developed which attempt to more efficiently process this sea of data. For example, text data processors are used to manage text documents, image processors process graphical data, mathematics processors process numeric data, and network processors manage network data packets being transmitted across data networks.
These tools each are adapted to recognize various high-level data formats according to the needs of the tool; for example Microsoft Word for text processors, JPEG and GIF for graphics processors, Ethernet and TCP/IP for network processors, etc. However, regardless of the specific high-level format, the underlying electronic data is represented as a series of binary values (0""s and 1""s). As part of the operations of these various tools, it is sometimes useful to be able to modify some or all of the binary values, according to a pre-defined series of mathematical operations.
Such data modifications may be done, for example, to process a graphic image by performing a color shift. If the binary values represent color data for a collection of pixels of an image, the pixel values may be altered by applying one or more mathematical operations, to generate new pixel values representing a different color or color combination. A simple example of this would be a data modification designed to extract out the xe2x80x9cred shiftxe2x80x9d effect found in an image of an object that is moving away from the camera at high speeds.
Another example is in numeric array processing, where the data represents an array of data to be analyzed, such as sample values from an empirical experiment, or survey data or the like. The data values all need to be analyzed using the same methods. Therefore, the block of data representing the test results is processed by having the same series of mathematical operations performed on each member of the block.
Yet another example is in encoding and decoding data. By applying a pre-defined series of mathematical operations on a data block or stream, the data can be modified to an encoded form. Similarly, by applying either the same or a different series of mathematical operations to an encoded data block, on a data block or stream, the data can be modified to a decoded form.
Various tools have been developed to perform each of these data modification functions. However, these tools tend to be application-specific, and frequently also task-specific. For example, a typical image processor will be adapted to process images of a particular format, and the image processor will be unable to perform numeric array processing or data encoding. Similarly, a data encoder will typically be adapted to encode data according to a particular encoding scheme, and will be unable to perform numeric array processing or image processing.
Additionally, although CPU""s available today can execute hundreds of millions or even billions of instructions per second, to achieve the necessary processing rates for some data modification tasks, vendors often must provide dedicated hardware assistance and/or front-end processors with hand-coded assembly language routines. This solution typically requires hardware and/or software modifications whenever changes are made to the number of supported data modification features, schemes, or formats.
Thus, it is desirable to have a configurable data modification capability, with common control logic that: a) is applicable to many different data modification applications and tasks, b) provides field based operations, and c) can be implemented in either hardware or software. By using common control logic, the system can be reconfigured to support the variety of existing data processors, data formats and data modification tasks and to support future data processors, data formats and data modification tasks without the need for hardware or software modifications.
Embodiments of the present invention are directed to improved systems and methods for modifying any format of data according to any desired mathematical data modification scheme, using programmably configurable data format definitions and data manipulation schemes, controlled by a common control logic. A single logic control module, implemented in either hardware or software, is used to perform a number of data modification functions, such as image processing, array processing, or data encoding. The module is based on one or more programmably configurable data modification protocol descriptions that may be stored in and retrieved from an associated memory.
By using common control logic, meaning a single logic control module, and programmably configurable data modification protocol descriptions, changes can be made to existing data modification protocol descriptions and support for new data modification protocol descriptions can be added to a system entirely through user reconfiguration, without the need for hardware or software system modifications. Thus, those skilled in the art will appreciate that a data modification system in accordance with an embodiment of the present invention may be configured and reconfigured in a highly efficient and cost effective manner to implement numerous data modification functions, such as data encoding, and to accommodate substantial application or task modifications, such as the use of different types of data processors, different data processor versions, or data formats, without requiring substantial system changes.
In a preferred embodiment, the system employs a CPU or other hardware-implemented method as a processing unit for analyzing files in response to selectively programmed data modification requests. The embodiment may be incorporated in a device, including a CPU and a plurality of input devices, storage devices, and output devices wherein files are received from the input devices, stored in the storage devices, processed by the CPU based upon one or more programmably configurable protocol descriptions also stored in the storage devices, and displayed on the output devices. The protocol descriptions may take the form of one or more protocol descriptions for each supported data modification scheme defined therein.